﻿using Ln.Rbac.Domain.Entities;
using Ln.Rbac.Domain.Shared.Dtos;
using Volo.Abp.Domain.Services;

namespace Ln.Rbac.Domain.Managers;

public interface IAccountManager : IDomainService
{
	string CreateRefreshToken(Guid userId);
	Task<string> GetTokenByUserIdAsync(Guid userId, Action<UserRoleMenuDto>? getUserInfo = null);
	Task LoginValidationAsync(string userName, string password, Action<UserAggregateRoot>? userAction = null);
	Task RegisterAsync(string userName, string password, long phone, string? nick);
	Task<bool> RestPasswordAsync(Guid userId, string password);
	Task UpdatePasswordAsync(Guid userId, string newPassword, string oldPassword);
}
